package org.example;

import org.apache.sshd.server.SshServer;
import org.apache.sshd.server.auth.password.PasswordAuthenticator;
import org.apache.sshd.sftp.server.SftpSubsystemFactory;

import java.io.IOException;
import java.nio.file.Paths;
import java.util.Arrays;

public class SimpleSFTPServer3 {

    public static void main(String[] args) {
        SshServer sshd = SshServer.setUpDefaultServer();
        sshd.setPort(2222); // 设置SFTP服务器端口号

        // 设置SFTP子系统工厂
        sshd.setSubsystemFactories(Arrays.asList(new SftpSubsystemFactory()));

        // 设置密码认证器
        sshd.setPasswordAuthenticator((username, password, session) -> "your_password".equals(password));

        // 设置SFTP根目录
//        sshd.setFileSystemFactory(session -> Paths.get("/path/to/your/sftp/root/directory"));

        try {
            // 启动SFTP服务器
            sshd.start();
            System.out.println("SFTP服务器已启动...");

            // 让程序保持运行状态
            while (true) {
                Thread.sleep(1000); // 等待一段时间，或者在这里添加其他逻辑
            }
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}
